home *** CD-ROM | disk | FTP | other *** search
/ Network Support Library / RoseWare - Network Support Library.iso / logbatch / greet.arc / GREET.PAS < prev   
Pascal/Delphi Source File  |  1989-07-26  |  4KB  |  117 lines

  1. {This program was written for Borland's Turbo Pascal, version 5.5, to add
  2.  a little color to a Novell network's initial greeting of a user, since I
  3.  found the plain color greeting to be a bit boring.  This program is put
  4.  into the public domain by the author, Ed Shoulta.
  5.  
  6.  This program is designed to be used in conjunction with the WHOAMI command
  7.  on the network.  You should pipe the output from WHOAMI into GREET as
  8.  follows:
  9.  
  10.  WHOAMI | GREET                                                            }
  11.  
  12. Program greet (input,output);
  13.  
  14. {$E+}                   {emulate math coprocessor if not present}
  15.  
  16. uses                    {define Turbo Pascal Units used}
  17. dos, crt;
  18.  
  19. const
  20. good : array[1..4] of char = 'Good';
  21. TimeOfDay : array[1..3] of string = ('morning ', 'afternoon ', 'evening ');
  22.  
  23. var
  24. whoiam, TOD : string;        {input from WHOAMI and Time Of Day}
  25. who : array [1..47] of char; {login name}
  26. I, J: integer;               {counters}
  27. h, m, s, hund : word;        {variables for call to get system time}
  28.  
  29. begin {program}
  30.  
  31. who := '                                               ';  {initialize}
  32. Assign(Input,'');
  33. Reset(Input);           {allow for redirected input with CRT unit}
  34. readln (whoiam);        {read in variable from NOVELL}
  35. I := 14;                {initialize counters}
  36. J := 1;
  37.  
  38. repeat                  {loop to get login name into variable who}
  39.     begin
  40.          if whoiam[I] <> ' ' then           {if not blank, copy letter}
  41.               begin                         {into variable who}
  42.                   who[I - 13] := whoiam[I];
  43.                   I := I + 1;
  44.                   J := J +1                 {increment counters}
  45.               end
  46.          else
  47.                   I := 61                   {else force exit}
  48.     end
  49. until I = 61;
  50.  
  51. for I := 1 to 12 do               {display 12 blank lines}
  52. writeln;
  53.  
  54. write ('         ');              {display 9 spaces}
  55.  
  56. for I := 1 to ((47 - J) DIV 2) do
  57. write (' ');                      {to center greeting on screen}
  58.  
  59. TextBackground(Black);
  60.  
  61. I := 9;
  62.  
  63. Repeat
  64.      begin
  65.           Textcolor(I);
  66.           I := I + 1;
  67.           write (good[I - 9])
  68.      end
  69. until I = 13;
  70.  
  71. write (' ');
  72.  
  73. GetTime(h,m,s,hund);                 {Get system time}
  74. if h < 12 then                       {If earlier than noon}
  75.     TOD := TimeOfDay[1]
  76. else if (h >= 12) and (h < 17) then  {If later than noon, earlier than 5 pm}
  77.     TOD := TimeOfDay[2]
  78. else                                 {If later than 5 pm}
  79.     TOD := TimeOfDay[3];
  80.  
  81. J := 1;       {Initialize counter for loop}
  82. repeat        {Begin loop for colorization of Time Of Day}
  83.     begin
  84.         TextColor(I);
  85.         write (TOD[J]);
  86.         J := J + 1;
  87.         if I < 15 then      {test code number}
  88.             I := I + 1      {increment color}
  89.         else
  90.             I := 9         {set color back to bright blue}
  91.     end
  92. until TOD[J] = ' ';
  93.  
  94. write (' ');
  95.  
  96. J := 1;       {Initialize counter for loop}
  97. repeat        {Begin loop for colorization of login name}
  98.     begin
  99.         TextColor(I);
  100.         write (who[J]);
  101.         J := J + 1;
  102.         if I < 15 then      {test code number}
  103.             I := I + 1     {increment color}
  104.         else
  105.             I := 9         {set color back to bright blue}
  106.     end
  107. until who[J] = ' ';
  108. TextColor(I);
  109. write ('!');                            {display "!" with next color}
  110. NormVideo;                              {Reset video attributes}
  111.  
  112. for I := 1 to 12 do                     {display 12 more blank lines}
  113. writeln;
  114.  
  115. Delay(2000);                            {pause 2000 milliseconds}
  116.  
  117. end.{program}                           {That's All Folks!}